#ifndef __BOY_H__
#define __BOY_H__

#include <glib-object.h>

typedef struct _Boy Boy;
typedef struct _BoyClass BoyClass;
typedef struct _BoyPrivate BoyPrivate;

#define BOY_TYPE (boy_get_type())
#define BOY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), BOY_TYPE, Boy))
#define BOY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE(obj, BOY_TYPE, BoyPrivate)

struct _Boy {
	GObject boy_p;
    BoyPrivate *priv;
	gint age;
    gint pr;
	gchar *name;
	void (*cry)(void);
};
struct _BoyClass {
	GObjectClass boy_cls_p;
	void (*boy_born)(void);
};
struct _BoyPrivate {
    gint weight;
};

GType boy_get_type(void);
Boy *boy_new(void);
int boy_get_age(Boy *boy);
void boy_set_age(Boy *boy, int age);
char *boy_get_name(Boy *boy);
void boy_set_name(Boy *boy, char *name);
Boy* boy_new_with_name(gchar *name);
Boy* boy_new_with_age(gint age);
Boy* boy_new_with_pr(int pr);
void boy_info(Boy *boy);



#endif //__BOY_H__
